import Vue from 'vue'
// 引入路由模块
import VueRouter from 'vue-router'
// 引入页面
import AdminLayout from '../views/AdminLayout.vue'
import Home from '../views/Home.vue'
import Login from "../views/Login.vue";
import UserIndex from "../views/user/Index"; // 员工管理首页
import Employee from "../views/user/Employee"; // 员工管理首页
import UserSetting from "../views/user/Setting"; // 个人设置首页
import PageNotFound from "../views/error/404"; //
import Setting from '../views/sys/Setting';
import Chart from "@/views/Chart";
import Notice from "@/views/sys/Notice"; // 导入职位管理

// 启用vue router
Vue.use(VueRouter)

// 路由表
const routes = [
    {
        // 登录页面
        path: '/login',
        name: 'Login',
        component: Login,
        meta: {
            title: '登录'
        }
    },
    {
        // 后台系统框架页面
        path: '/',    // 页面访问路径
        component: AdminLayout, // 页面的组件,
        //子路由： 子路由会自动应用父路由的页面框架
        children: [
            {
                path: '/',
                redirect: '/index'
            },
            {
                path: '/index',
                name: 'UserIndex',
                component: UserIndex,
                meta: {
                    title: '个人首页'
                }
            },
            {
                path: '/chart',
                name: 'Chart',
                component: Chart,
                meta: {
                    title: '数据统计'
                }
            },
            {
                path: '/user',
                name: 'User',
                component: Employee,
                meta: {
                    title: '员工管理'
                }
            },
            {
                path: '/employee',
                name: 'Employee',
                component: Employee,
                meta: {
                    title: '员工管理'
                }
            },
            {
                path: '/notice',
                name: 'Notice',
                component: Notice,
                meta: {
                    title: '通知管理'
                }
            },
            {
                path: '/setting',
                name: 'Setting',
                component: Setting,
                meta: {
                    title: '系统设置'
                }
            },
            {
                path: '/user/setting',
                name: 'UserSetting',
                component: UserSetting,
                meta: {
                    title: '系统设置'
                }
            },

            {
                path: "*",
                component: PageNotFound
            }
        ]
    },

]

// 创建路由实例
const router = new VueRouter({
    routes,
    // mode: 'history'
})
// 对路由显示前进行处理
// 简单的权限之类的验证哟
// 全局路由前置验证
router.beforeEach(
    /**
     *
     * @param to 即将显示的路由信息
     * @param from 来源路由信息
     * @param next 继续执行下一个动作的函数对象
     */
    (to, from, next) => {
    const sessionName = 'ehr-login-token';
    // 获取到要显示的页面路径
    const path = to.path;
    // 判断是否是登录页面 应为登录页面不需要权限验证
    if (path.startsWith('/login')) {
        // 清除了登录信息
        localStorage.removeItem(sessionName);
        // 显示登录页面
        next();
    } else {
        // 获取用户登录信息
        let user = localStorage.getItem(sessionName);
        if (!user) {
            // 没有获取到登录信息 直接跳转到登录页面
            next({path: '/login'})
            return;
        }
        next()
    }
})
// 暴露路由实例
export default router
